home *** CD-ROM | disk | FTP | other *** search
/ FM Towns: Free Software Collection 8 / FM Towns Free Software Collection 8.iso / fb386 / line2 / line2.bas < prev    next >
BASIC Source File  |  1994-06-01  |  15KB  |  468 lines

  1. 1 CLS:SCREEN @1:RANDOMIZE TIME 
  2. 2 CLEAR :DIM HEY%(19200/2+16) :DIM BOMB%(2*19200/2+16) 
  3. 4 LOAD@ "BOMB.SND",BOMB% :LOAD@ "HEY.SND",HEY% :LOAD@"FMP.FMB"
  4. 5 '    ***********************
  5. 6 '    *    Line Light V2.0     *
  6. 7 '    *                     *
  7. 8 '    *           PROGRAMED BY TN   *
  8. 9 '    ***********************
  9. 10 GOSUB *TITLE
  10. 20 GOSUB *画面作成
  11. 30 GOSUB *P2選択 :GOSUB *LEVEL選択 :P(0)=0 :P(1)=0
  12. 40 DEAD=0 :OLDA_SHOT=1 :OLDB_SHOT=1 :まがるP1=0:まがるP2=0 
  13. 60 P1方向=2 :P2方向=4 :P1X=50:P1Y=120:P2X=280:P2Y=120
  14. 70 PSET (50,120),3 :PSET (280,120),5:MOUSE 1,75,75,0:MOUSE 4,0,0,319,239
  15. 76 CLS 1 :PLAY ON :P1逆=0 :P2逆=0 :COL1=3 :COL2=5 :L=0 :OPL=0 
  16. 77 IT=75+INT(RND*50) 
  17. 80 '------------------------------------------------------------
  18. 90    WHILE DEAD=0
  19. 91    OPL=PL
  20. 97    GOSUB *P1MOUSE :GOSUB *P2PAD 
  21. 100    IF P2=1 GOSUB *かんがえる :ELSE GOSUB *P2どっちにすすむ
  22. 110    GOSUB *P1どっちにすすむ 
  23. 111     IF LEVEL(1)=1 AND RND<.0005! GOSUB *まがっちゃう
  24. 120    GOSUB *P1しらべてかく 
  25. 130    GOSUB *P2しらべてかく 
  26. 131    IF LEVEL(1)=1 AND RND<.02! THEN GOSUB *イベント
  27. 132    IF P2=0 GOSUB *ウェイト 
  28. 133    'GOSUB *P2しらべてかく 
  29. 134    L=L+1 :PL=INT(L/10):LOCATE 10,23 :COLOR 6:
  30. 135    IF PL<>OPL THEN PRINT USING"このゲームの勝者は######点もらえるよ!";PL
  31. 140    WEND
  32. 150 '------------------------------------------------------------
  33. 160 GOSUB *GAMEOVER
  34. 170 IF C(0)=-1 THEN GOTO *REPLAY
  35. 180 SCREEN @1 :EOP=1:GOTO *おわる
  36. 190 '
  37. 200 '
  38. 210 *GAMEOVER
  39. 220 IF DEAD=1 THEN PAINT(50,120),1,0,4,5,1,7
  40. 230 IF DEAD=2 THEN PAINT(280,120),1,0,4,3,2
  41. 240 BEEP 363523,10,100 :PCMPLAY BOMB%
  42. 250 SYMBOL (95,75),"GAMEOVER",2,1.5!,4,,,2
  43. 280 IF DEAD=1 THEN SYMBOL (112,115),"2player win!",1,1,5,,,1 :
  44. 290 IF DEAD=2 THEN SYMBOL (112,115),"1player win!",1,1,3,,,1 :
  45. 291 '                 
  46. 292 '                 LOCATE 50,15 :COLOR 4 :PRINT "2PLAYER :"+STR$(P(1))
  47. 293 GOSUB *POINT
  48. 300 WAIT 200 :C(0)=0 :C(1)=0
  49. 310 LINE (21,26)-(299,214),PSET,4,BF,0
  50. 320 SYMBOL (80,75),"もう一度しますか?<Y>左クリック /<N>右クリック",.5!,.5!,4
  51. 340   WHILE C(0)=0 AND C(1)=0
  52. 350   C(0)=MOUSE(2,0) :C(1)=MOUSE(2,1)
  53. 360   WEND
  54. 370 '
  55. 380 '
  56. 390 RETURN
  57. 400 '
  58. 410 *REPLAY
  59. 430 LINE (21,26)-(299,214),PSET,4,BF,0
  60. 440 C(0)=0 :C(1)=0 :CLS 1 :WAIT 20 :EOP=1 :CLS 1
  61. 450 GOTO 40
  62. 460 '
  63. 470 '
  64. 480 *ウェイト
  65. 490 FOR WA=0 TO IT
  66. 500 NEXT
  67. 510 RETURN
  68. 520 '
  69. 530 *P1どっちにすすむ
  70. 540 '
  71. 550 'まがるP1$=INKEY$ 
  72. 560 IF まがるP1=0 THEN RETURN
  73. 570 IF P1逆=0 AND まがるP1=1 THEN P1方向=P1方向-1
  74. 580 IF P1逆=0 AND まがるP1=2 THEN P1方向=P1方向+1
  75. 581 '
  76. 582 IF P1逆=1 AND まがるP1=1 THEN P1方向=P1方向+1
  77. 583 IF P1逆=1 AND まがるP1=2 THEN P1方向=P1方向-1
  78. 584 '
  79. 590 IF P1方向=0 THEN P1方向=4 
  80. 600 IF P1方向=5 THEN P1方向=1
  81. 610 RETURN
  82. 620 '
  83. 630 '
  84. 640 *P2どっちにすすむ
  85. 650 'まがるP2$=INKEY$ 
  86. 655 IF まがるP2=0 THEN RETURN
  87. 660 IF P2逆DA=0 AND まがるP2=1 THEN P2方向=P2方向-1
  88. 670 IF P2逆DA=0 AND まがるP2=2 THEN P2方向=P2方向+1
  89. 671 '
  90. 672 IF P2逆DA=1 AND まがるP2=1 THEN P2方向=P2方向+1
  91. 673 IF P2逆DA=1 AND まがるP2=2 THEN P2方向=P2方向-1
  92. 674 '
  93. 680 IF P2方向=0 THEN P2方向=4 
  94. 690 IF P2方向=5 THEN P2方向=1
  95. 700 RETURN
  96. 710 '
  97. 720 '
  98. 730 '----------------------------------
  99. 740 '       下調べ サブルーチン
  100. 750 '----------------------------------
  101. 760 *画面作成
  102. 770 'LINE (0,0)-(325,240),PSET,0,BF  ,&H00152345235145230
  103. 780 LINE (20,25)-(300,215),PSET,4,BF,0
  104. 782 LINE (21,26)-(299,214),PSET,4,BF,0
  105. 790 SYMBOL (85,16),"TN PLESENTS  V2.0",1,.5!,4,,,2
  106. 800 SYMBOL (80,0),"Line Light",1,1,4,,,1
  107. 810 COLOR 3:LOCATE 10,4 :PRINT "PLAYER 1               "
  108. 820 LOCATE 10,5 :PRINT         "マウスの左クリックで左に曲がる"
  109. 830 LOCATE 10,6 :PRINT "     右クリックで右に曲がる"
  110. 835 'LOCATE 10,7 :PRINT "キ-ボ-ドの *でSPEED UP  "
  111. 840 COLOR 5:LOCATE 40,4 :PRINT"PLAYER 2       "
  112. 850 LOCATE 40,5 :PRINT "パッドの A で左に曲がる"
  113. 860 LOCATE 40,6 :PRINT "        B で右に曲がる"
  114. 870 'LOCATE 40,7 :PRINT "        ↓でSPEED UP"
  115. 880 SYMBOL (80,125),"マウスで選んでください",1,.5!,2,,,2
  116. 890 SYMBOL (85,150),"1P VS COM",.5!,1,7,,,1 
  117. 900 SYMBOL (185,150),"1P VS 2P",.5!,1,7,,,1 
  118. 910 LINE (185,150)-(245,166),XOR,6,BF
  119. 911 LINE (185,150)-(245,166),XOR,[50,0,0],BF
  120. 912 LINE (85,150)-(150,166),XOR,[50,0,0],BF
  121. 920 RETURN
  122. 930 '
  123. 940 '
  124. 950 *P2選択
  125. 960 MOUSE 0 
  126. 970 MOUSE 4,85,150,235,166
  127. 980 MOUSE 1,100,100,1  :P2=0 
  128. 985 '
  129. 990 IF MOUSE(0)<150 AND P2=0 THEN :LINE (185,150)-(245,166),XOR,6,BF:LINE (85,150)-(150,166),XOR,6,BF :P2=1
  130. 1000 IF MOUSE(0)>185 AND P2=1 THEN :LINE (85,150)-(150,166),XOR,6,BF:LINE (185,150)-(245,166),XOR,6,BF :P2=0 
  131. 1010 IF MOUSE(0)<150 AND MOUSE(2,0)=-1 THEN LINE (85,150)-(150,166),OR,2,BF :GOTO 1040
  132. 1020 IF MOUSE(0)>185 AND MOUSE(2,0)=-1 THEN LINE (185,150)-(245,166),OR,2,BF :GOTO 1040
  133. 1030 GOTO 990
  134. 1035 '
  135. 1040 BEEP 363523,10,1000
  136. 1050 '     SYMBOL (225,350),"GAME START!!!",2,2,3,,,2
  137. 1060 WAIT 10 :
  138. 1070 GOSUB *効果_線
  139. 1080 RETURN
  140. 1090 '
  141. 1100 '
  142. 1110 '---------------------------------
  143. 1120 '  調べて書くサブルーチン
  144. 1130 '---------------------------------
  145. 1140 '
  146. 1150 *P1しらべてかく
  147. 1160 P1OX=P1X :P1OY=P1Y
  148. 1170 IF P1方向=1 THEN P1Y=P1Y-1
  149. 1180 IF P1方向=2 THEN P1X=P1X+1
  150. 1190 IF P1方向=3 THEN P1Y=P1Y+1
  151. 1200 IF P1方向=4 THEN P1X=P1X-1
  152. 1201 '
  153. 1202 'IF P1逆=1 AND P1方向=1  THEN P1X=P1OX-1 :P1Y=P1OY
  154. 1203 'IF P1逆=1 AND P1方向=2  THEN P1Y=P1OY+1 :P1X=P1OX
  155. 1204 'IF P1逆=1 AND P1方向=3  THEN P1X=P1OX+1 :P1Y=P1OY
  156. 1205 'IF P1逆=1 AND P1方向=4  THEN P1Y=P1OY-1 :P1X=P1OX
  157. 1206 '
  158. 1220 GET@(P1X,P1Y)-(P1X,P1Y),P1調査
  159. 1240 IF P1調査(0)<>0 THEN DEAD=1
  160. 1260 PSET (P1X,P1Y),COL1
  161. 1280 RETURN
  162. 1290 '
  163. 1300 '
  164. 1310 *P2しらべてかく
  165. 1320 P2OX=P2X :P2OY=P2Y
  166. 1330 IF P2方向=1 THEN P2Y=P2Y-1
  167. 1340 IF P2方向=2 THEN P2X=P2X+1
  168. 1350 IF P2方向=3 THEN P2Y=P2Y+1
  169. 1360 IF P2方向=4 THEN P2X=P2X-1
  170. 1361 '
  171. 1362 'IF P2逆DA=1 AND P2方向=1  THEN P2X=P2OX-1 :P2Y=P2OY
  172. 1363 'IF P2逆DA=1 AND P2方向=2  THEN P2Y=P2OY+1 :P2X=P2OX
  173. 1364 'IF P2逆DA=1 AND P2方向=3  THEN P2X=P2OX+1 :P2Y=P2OY
  174. 1365 'IF P2逆DA=1 AND P2方向=4  THEN P2Y=P2OY-1 :P2X=P2OX
  175. 1366 '
  176. 1370 '
  177. 1380 GET@(P2X,P2Y)-(P2X,P2Y),P2調査
  178. 1390 '
  179. 1400 IF P2調査(0)<>0 THEN DEAD=2
  180. 1410 PSET (P2X,P2Y),COL2
  181. 1420 RETURN
  182. 1430 '
  183. 1440 '
  184. 1450 '-----------------------------------
  185. 1460 '      イベント関係
  186. 1470 '-----------------------------------
  187. 1480 *LEVEL選択
  188. 1481 COLOR 4      :CLS 1 :IF P2=0 THEN GOTO 1510
  189. 1482 LOCATE 10,20 :PRINT "コンピュータのLEVELを設定してください<1-3>       "
  190. 1490 LOCATE 10,20 :INPUT "コンピュータのLEVELを設定してください<1-3>";LEVEL(0)
  191. 1500 IF LEVEL(0)<1 OR LEVEL(0)>3 GOTO 1480
  192. 1510 LOCATE 10,21 :PRINT "イベントはあった方がいいですか<Y/N>         " 
  193. 1520 LOCATE 10,21 :INPUT "イベントはあった方がいいですか<Y/N>  ";IBE$
  194. 1530 IF IBE$="Y" OR IBE$="y" THEN LEVEL(1)=1 :RETURN
  195. 1540 IF IBE$="N" OR IBE$="n" THEN LEVEL(1)=0 :RETURN
  196. 1550 LOCATE 10,21 :PRINT "イベントはあった方がいいですか<Y/N>            "
  197. 1560 GOTO 1510
  198. 1570 RETURN
  199. 1580 '
  200. 1590 '
  201. 1600 *イベント
  202. 1610 ON INT(RND*3)+1 GOSUB *HEY,*BOX,*逆
  203. 1615 'GOSUB *逆
  204. 1620 RETURN
  205. 1630 '
  206. 1640 *HEY 
  207. 1650 SYMBOL (INT(RND*(597-43-32*2)+43)/2,INT(RND*(427-53-16*2)+53)/2),"HEY!",1,1,6
  208. 1660 HEY%(12)=1881 :HEY%(12)=HEY%(12)+(INT(RND*5)-2)*98  :PCMPLAY HEY%
  209. 1670 RETURN
  210. 1680 '
  211. 1690 *BOX 
  212. 1700 LINE ((INT(RND*(597-42))+42)/2,(INT(RND*(427-52))+52)/2)-((INT(RND*(597-42))+42)/2,(INT(RND*(427-52))+52)/2),PSET,6,B,&HA5A0
  213. 1710 PLAY OFF:PLAY ON :PLAY "","V10 @70 L12 CD"
  214. 1720 RETURN
  215. 1730 '
  216. 1740 '
  217. 1750 *逆
  218. 1760 IF RND<RND/2 THEN RETURN
  219. 1770 ON INT(RND*2)+1 GOSUB 1790,1820
  220. 1775 RETURN
  221. 1780 '
  222. 1790 P1逆=P1逆+1 :COL1=2 :IF P1逆>1 THEN P1逆=0 :COL1=3
  223. 1800 PLAY OFF:PLAY ON :PLAY "","@69 C4" :PAINT(50,120),COL1,0,4,5,7
  224. 1805 RETURN
  225. 1810 '
  226. 1820 COL2=7  :P2逆=P2逆+1:IF P2逆>1 THEN P2逆=0 :COL2=5
  227. 1830 PLAY OFF:PLAY ON :PLAY "","@68 C4":PAINT(280,120),COL2,0,4,3,2 
  228. 1835 IF P2=1 THEN P2逆DA=0 :GOSUB *まがれ:RETURN
  229. 1840 IF P2<>1 THEN P2逆DA=P2逆 :RETURN
  230. 1850 '
  231. 1851 '
  232. 1852 *まがれ
  233. 1853 P2方向=INT(P2方向+1)
  234. 1854 IF P2方向<1 THEN P2方向=4
  235. 1855 IF P2方向>4 THEN P2方向=1
  236. 1856 RETURN
  237. 1857 '
  238. 1858 *まがっちゃう
  239. 1859 IF RND<.2! THEN RETURN'
  240. 1860 LINE (22,27)-(298,213),XOR,[100,80,120],BF :
  241. 1861 PLAY OFF :PLAY ON :PLAY "","@61 D16G16A16" 
  242. 1862 LINE (22,27)-(298,213),XOR,[100,80,120],BF
  243. 1871 RE=INT(RND*3)-1 :IF RE=0 GOTO 1871
  244. 1872 P1方向=P1方向+RE :P2方向=P2方向-RE
  245. 1873 IF P1方向<1 THEN P1方向=4
  246. 1874 IF P1方向>4 THEN P1方向=1
  247. 1875 IF P2方向<1 THEN P2方向=4
  248. 1876 IF P2方向>4 THEN P2方向=1
  249. 1877 RETURN
  250. 1878 '----------------------------
  251. 1879 '       おわる
  252. 1880 '--------------------------
  253. 1885 *おわる
  254. 1890 CLS 
  255. 1900 INPUT "END OF THIS GAME? <Y/N>";Q$(0)
  256. 1910 IF Q$(0)="Y" OR Q$(0)="y" OR Q$(0)="N" OR Q$(0)="n" ELSE GOTO 1900
  257. 1920 IF Q$(0)="N" OR Q$(0)="n" THEN WAIT 50 :GOTO 20
  258. 1930 INPUT "END OF F-BASIC386? <Y/N>";Q$(1)
  259. 1940 IF Q$(1)="Y" OR Q$(1)="y" OR Q$(1)="N" OR Q$(1)="n" ELSE GOTO 1930
  260. 1950 IF Q$(1)="N" OR Q$(1)="n" THEN END
  261. 1960 INPUT "REALLY? <Y/N>";Q$(2)
  262. 1970 IF Q$(2)="Y" OR Q$(2)="y" OR Q$(2)="n" OR Q$(2)="N" ELSE GOTO 1960
  263. 1980 IF Q$(2)="N" OR Q$(2)="n"THEN CLS :GOTO 1900 ELSE SYSTEM
  264. 1990 '
  265. 2000 *POINT
  266. 2010 WAIT 50
  267. 2020   FOR V=1 TO INT(PL)
  268. 2030   IF DEAD=2 THEN P(0)=P(0)+1
  269. 2035   IF DEAD=1 THEN P(1)=P(1)+1
  270. 2040   COLOR 4 :LOCATE 10,15 :PRINT "1PLAYER :"+STR$(P(0)) 
  271. 2050   LOCATE 50,15 :PRINT "2PLAYER :"+STR$(P(1)) 
  272. 2060   PL=PL-1
  273. 2070   LOCATE 10,23 :COLOR 6:PRINT USING"このゲームの勝者は######点もらえるよ!";PL
  274. 2080   NEXT
  275. 2090 RETURN
  276. 2100 '
  277. 2110 '
  278. 2120 '
  279. 2130 *TITLE
  280. 2140 SCREEN @0
  281. 2150 CLS
  282. 2200 PALETTE 15,[0,0,0] :PALETTE 9,[0,0,0]
  283. 2210 SYMBOL (100,50),"Line Light",5,10,7,,,3
  284. 2220 SYMBOL (160,250),"Programed by TN",2,5,1,,,1
  285. 2225 '
  286. 2230 FOR PAL=0 TO 255
  287. 2240 PALETTE 15,[PAL,PAL,PAL]
  288. 2245 PALETTE 9,[PAL,PAL,INT(PAL/1.2!)]
  289. 2250 FOR Z=0 TO 20 :NEXT :NEXT
  290. 2270 '
  291. 2280 FOR PAL=0 TO 255
  292. 2290 PALETTE 15,[255-PAL/2,255-PAL,255]
  293. 2300 FOR Z=0 TO 5 :NEXT :NEXT
  294. 2305 SYMBOL (100,400),"Please mouse bottom",3,1,2
  295. 2310 '
  296. 2320 BGM 1 :MOUSE 0
  297. 2330 PLAY OFF :PLAY ON :PLAY "","","@35 C16D16","@76 V10","@36 V10","@113 V5"
  298. 2335 FOR Z=0 TO 5
  299. 2340 PLAY "","","L16<AAAAAAAAFFFFGGGG>","L8 CRCR L16 CRCRCRCR"," L8 RCRC L16RCRCRCRC","L16O3<AAAAAAAAFFFFGGGG>" :NEXT
  300. 2350 WHILE  MOUSE(2,0)<>-1 AND MOUSE(2,1)<>-1  :WEND
  301. 2360 '
  302. 2361 SYMBOL (100,400),"Please mouse bottom",3,1,0
  303. 2370 FOR PAL=0 TO 225
  304. 2380 PALETTE 0,[PAL,0,PAL]
  305. 2390 FOR Z=0 TO 15 :NEXT :NEXT
  306. 2400 WAIT 75
  307. 2410 FOR PAL=0 TO 225
  308. 2420 PALETTE 0,[225-PAL,0,225-PAL]
  309. 2421 PALETTE 15,[255/2-INT(PAL/2),0,255-PAL]
  310. 2422 PALETTE 9,[255-PAL,255-PAL,INT(255/1.2!)-INT(PAL/1.2!)]
  311. 2430 FOR Z=0 TO 15 :NEXT:NEXT 
  312. 2440 '
  313. 2450 PLAY OFF :SCREEN @1 :WAIT 100:RETURN
  314. 2460 '
  315. 11000 '---------------------------------
  316. 11010 '   画面効果サブルーチン
  317. 11020 '---------------------------------
  318. 11030 '
  319. 11040 *効果_線
  320. 11050 '
  321. 11060 WAIT 10 :
  322. 11070 ' FOR Z=1 TO 75
  323. 11080 ' LINE (43,53+5*Z)-(597,427-5*Z),PSET,INT(RND*7)+1
  324. 11090 ' NEXT
  325. 11100 '            
  326. 11110 ' FOR Z=1 TO 112
  327. 11120 ' LINE (597-5*Z,53)-(43+5*Z,427),PSET,INT(RND*7)+1
  328. 11130 ' NEXT
  329. 11140 LINE (21,26)-(299,214),PSET,4,B
  330. 11150 LINE (22,27)-(298,213),PSET,0,BF
  331. 11155 WAIT 30
  332. 11170 RETURN
  333. 11180 '
  334. 11190 '-----------------------------
  335. 11200 '       その他
  336. 11210 '-----------------------------
  337. 11220 *P2PAD
  338. 11230 '
  339. 11240 A_SHOT=PTRIG(1)
  340. 11250 B_SHOT=PTRIG(1)
  341. 11260 IF OLDA_SHOT=0 AND A_SHOT=1 THEN まがるP2=2
  342. 11270 IF OLDB_SHOT=0 AND B_SHOT=2 THEN まがるP2=1
  343. 11271 IF OLDA_SHOT=1 THEN まがるP2=0
  344. 11272 IF OLDB_SHOT=2 THEN まがるP2=0
  345. 11275 IF A_SHOT=0 AND B_SHOT=0 THEN まがるP2=0
  346. 11280 OLDA_SHOT=A_SHOT
  347. 11290 OLDB_SHOT=B_SHOT
  348. 11300 RETURN
  349. 11310 '
  350. 11320 '
  351. 11330 *P1MOUSE
  352. 11340 '
  353. 11350 L_CRK=MOUSE(2,0)
  354. 11360 R_CRK=MOUSE(2,1)
  355. 11370 IF OLDL_CRK=0  AND L_CRK=-1   THEN まがるP1=1
  356. 11380 IF OLDR_CRK=0  AND R_CRK=-1   THEN まがるP1=2
  357. 11390 IF OLDL_CRK=-1                THEN まがるP1=0
  358. 11400 IF OLDR_CRK=-1                THEN まがるP1=0
  359. 11410 IF L_CRK=0  AND R_CRK=0 THEN まがるP1=0
  360. 11420 OLDL_CRK=L_CRK
  361. 11430 OLDR_CRK=R_CRK
  362. 11440 RETURN
  363. 11450 '
  364. 20000 '---------------------------------
  365. 20010 '        人工知能AI
  366. 20020 '
  367. 20030 *かんがえる
  368. 20035 判別=0
  369. 20040 ON P2方向 GOSUB *うえ,*みぎ,*した,*ひだり
  370. 20050 ON LEVEL(0) GOSUB *L1,*L2,*L3
  371. 20051 IF 判別<>0 ELSE RETURN 
  372. 20055 GOSUB *判別
  373. 20060 RETURN
  374. 20070 '
  375. 20080 *うえ
  376. 20091 '
  377. 20092 '        AI1+
  378. 20093 '        AI2+
  379. 20094 '        AI3+ 
  380. 20095 '   AI7+ AI4+ AI8+
  381. 20096 '   AI5+    * AI6+
  382. 20097 '
  383. 20100 GET@(P2X,P2Y-7)-(P2X,P2Y-7),AI1%
  384. 20110 GET@(P2X,P2Y-5)-(P2X,P2Y-5),AI2%
  385. 20120 GET@(P2X,P2Y-2)-(P2X,P2Y-2),AI3%
  386. 20130 GET@(P2X,P2Y-1)-(P2X,P2Y-1),AI4%
  387. 20140 GET@(P2X-1,P2Y)-(P2X-1,P2Y),AI5%
  388. 20150 GET@(P2X+1,P2Y)-(P2X+1,P2Y),AI6%
  389. 20160 GET@(P2X-1,P2Y-1)-(P2X-1,P2Y-1),AI7%
  390. 20170 GET@(P2X+1,P2Y-1)-(P2X+1,P2Y-1),AI8%
  391. 20180 RETURN
  392. 20190 '
  393. 20200 *みぎ
  394. 20220 ' 5+ 7+
  395. 20230 ' *  4+   3+   2+   1+
  396. 20240 ' 6+ 8+
  397. 20250 '
  398. 20260 GET@(P2X+7,P2Y)-(P2X+7,P2Y),AI1%
  399. 20270 GET@(P2X+5,P2Y)-(P2X+5,P2Y),AI2%
  400. 20280 GET@(P2X+2,P2Y)-(P2X+2,P2Y),AI3%
  401. 20290 GET@(P2X+1,P2Y)-(P2X+1,P2Y),AI4%
  402. 20300 GET@(P2X,P2Y-1)-(P2X,P2Y-1),AI5%
  403. 20310 GET@(P2X,P2Y+1)-(P2X,P2Y+1),AI6%
  404. 20320 GET@(P2X+1,P2Y-1)-(P2X+1,P2Y-1),AI7%
  405. 20330 GET@(P2X+1,P2Y+1)-(P2X+1,P2Y+1),AI8%
  406. 20340 RETURN 
  407. 20350 '
  408. 20360 '
  409. 20370 *した
  410. 20390 '   6+ *  5+
  411. 20400 '   8+ 4+ 7+
  412. 20410 '      3+
  413. 20420 '      2+
  414. 20430 '      1+
  415. 20440 '
  416. 20450 '
  417. 20460 GET@(P2X,P2Y+7)-(P2X,P2Y+7),AI1%
  418. 20470 GET@(P2X,P2Y+5)-(P2X,P2Y+5),AI2%
  419. 20480 GET@(P2X,P2Y+2)-(P2X,P2Y+2),AI3%
  420. 20490 GET@(P2X,P2Y+1)-(P2X,P2Y+1),AI4%
  421. 20500 GET@(P2X+1,P2Y)-(P2X+1,P2Y),AI5%
  422. 20510 GET@(P2X-1,P2Y)-(P2X-1,P2Y),AI6%
  423. 20520 GET@(P2X+1,P2Y+1)-(P2X+1,P2Y+1),AI7%
  424. 20530 GET@(P2X-1,P2Y+1)-(P2X-1,P2Y+1),AI8%
  425. 20540 RETURN
  426. 20550 '
  427. 20560 '
  428. 20570 *ひだり
  429. 20590 '          +8 +6
  430. 20600 ' +1 +2 +3 +4 *
  431. 20610 '          +7 +5
  432. 20620 GET@(P2X-7,P2Y)-(P2X-7,P2Y),AI1%
  433. 20630 GET@(P2X-5,P2Y)-(P2X-5,P2Y),AI2%
  434. 20640 GET@(P2X-2,P2Y)-(P2X-2,P2Y),AI3%
  435. 20650 GET@(P2X-1,P2Y)-(P2X-1,P2Y),AI4%
  436. 20660 GET@(P2X,P2Y+1)-(P2X,P2Y+1),AI5%
  437. 20670 GET@(P2X,P2Y-1)-(P2X,P2Y-1),AI6%
  438. 20680 GET@(P2X-1,P2Y+1)-(P2X-1,P2Y+1),AI7%
  439. 20690 GET@(P2X-1,P2Y-1)-(P2X-1,P2Y-1),AI8%
  440. 20700 RETURN 
  441. 20710 '
  442. 20720 '
  443. 20730 *L1
  444. 20740 IF AI3%(0)<>0 OR AI1%(0)<>0 THEN 判別=1
  445. 20750 RETURN
  446. 20760 '
  447. 20770 *L2
  448. 20780 IF AI4%(0)<>0 OR AI3%(0)<>0 OR AI2%(0)<>0 OR AI1%(0)<>0 THEN 判別=1
  449. 20785 RETURN
  450. 20790 '
  451. 20800 *L3
  452. 20810 IF AI1%(0)<>0  THEN 判別=1
  453. 20811 IF AI2%(0)<>0  THEN 判別=1
  454. 20812 IF AI3%(0)<>0  THEN 判別=1
  455. 20813 IF AI4%(0)<>0  THEN 判別=1
  456. 20820 IF AI7%(0)<>0 AND AI8%(0)<>0 THEN 判別=2
  457. 20825 IF AI6%(0)<>0 OR AI5%(0)<>0 THEN 判別=3
  458. 20830 RETURN
  459. 20840 '
  460. 20850 *判別
  461. 20860 IF AI5%(0)=0 AND AI6%(0)=0 AND INT(RND*2)=0 THEN P2方向=P2方向+1 
  462. 20870 IF AI5%(0)<>0 AND AI6%(0)=0                 THEN P2方向=P2方向+1
  463. 20880 IF AI5%(0)=0 AND AI6%(0)<>0                 THEN P2方向=P2方向-1
  464. 20890 IF AI5%(0)=0 AND AI6%(0)=0 AND INT(RND*2)=1 THEN P2方向=P2方向-1
  465. 20900 IF P2方向=0 THEN P2方向=4 
  466. 20910 IF P2方向=5 THEN P2方向=1
  467. 20920 RETURN
  468.